/**
 * Projeto Myou - Disciplina: Sistemas de Informação I
 * @author Ronycley Gonçalves Agra
 * @since 23/09/2011
 */
package myou.classes;
/**
 * Classe que encapsula o comportamento de uma sessão
 * @author Ronycley Gonçalves Agra
 * @version 1.0
 * @since Milestone 1 23/09/2011 
 * @see myou.classes.Sistema
 * @see myou.classes.Interesse
 * @see myou.classes.Emprestimo
 * @see myou.classes.Mensagem
 * @see myou.classes.Item
 * @see myou.classes.RequisicaoDeAmizade
 * @see myou.classes.RequisicaoDeEmprestimo
 * @see myou.classes.Topico
 * @see myou.classes.Usuario
 */
public class Sessao {
	
	private String id;
	private Usuario usuario;
	
	/**
	 * Construtor
	 * @param usuario O usuário da Sessaão
	 */
	public Sessao(Usuario usuario) {
		this.id = this.generateId(usuario.getLogin());
		this.usuario = usuario;
	}

	/**
	 * Retorna o Id da sessão
	 * @return O Id da sessão
	 */
	public String getId() {
		return id;
	}

	/**
	 * Retorna o usuário da sessão
	 * @return O usuaário da sessão
	 */
	public Usuario getUsuario() {
		return usuario;
	}

	/**
	 * Modifica o usuário da sessão
	 * @param usuario O novo usuário da sessaõ
	 */
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	/**
	 * Gera randomicamente o id para a sessão
	 * @param str O string que vai compar a sessão
	 * @return O id gerado
	 */
	private String generateId(String str) {
		int parteRandomica1 = (int) (Math.random() * 100);
		int parteRandomica2 = (int) (Math.random() * 100);
		return (new Integer(parteRandomica1)).toString() + str + parteRandomica2;
	}
}
